Expand description
percy-dom provides a virtual dom implementation as well as an html!
macro
that you can use to generate a virtual dom.
The virtual dom works on both the client and server. On the client we’ll render
to an HtmlElement
, and on the server we render to a String
.
Modules
Exports structs and macros that you’ll almost always want access to in a virtual-dom
powered application
Utilities to help with rendering.
Utilities for single page applications.
A collection of functions that are useful for unit testing your html! views.
Macros
Used to generate VirtualNode’s from a TokenStream.
Structs
A handle to both a closure in Rust as well as JS closure which will invoke
the Rust closure.
Box<dyn AsRef>> is our js_sys::Closure. Stored this way to allow us to store
any Closure regardless of the types of its arguments.
Used by the html! macro for all braced child nodes so that we can use any type
that implements Into
Used for keeping a real DOM node up to date based on the current VirtualNode
and a new incoming VirtualNode that represents our latest DOM state.
A specially supported attributes.
Represents a text node
Enums
The value associated with an element’s attribute.
A Patch encodes an operation that modifies a real DOM element.
Patches that apply to [
SpecialAttributes
].When building your views you’ll typically use the
html!
macro to generate
VirtualNode
’s.Traits
A trait for checked and unchecked casting between JS types.
A trait with common functionality for rendering front-end views.
Functions
Given two VirtualNode’s generate Patch’s that would turn the old virtual node’s
real DOM node equivalent into the new VirtualNode’s real DOM node equivalent.
Apply all of the patches to our old root node in order to create the new root node
that we desire. Also, update the
EventsByNodeIdx
with the new virtual node’s event callbacks.